package Thread;

import java.util.*;

//将集合或Map转成线程安全的
public class SynchronizedListMap {
    public static void main(String[] args) {
        List list=new ArrayList();
        list.add("one");
        list.add("two");
        list.add("three");
        System.out.println(list);
        //将给定集合转成线程安全的集合
        list=Collections.synchronizedList(list);
        System.out.println(list);


        //HashSet是线程不安全的
        Set set=new HashSet(list);
        System.out.println(set);

        //将给定的set集合转成线程安全的
        set=Collections.synchronizedSet(set);
        System.out.println(set);


        Map<String,Integer> map=new HashMap<String, Integer>();
        map.put("语文",129);
        map.put("数学",110);
        map.put("英语",30);
        System.out.println(map);
        map=Collections.synchronizedMap(map);
        System.out.println(map);


//        API手册上有说明
//        就算是线程安全的集合那么其中对于
//        元素的操作，如:add, remove等方法都
//        不予迭代器遍历做互斥,需要自行维护
//        互斥关系

    }


}
